﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LibNiconico.NiconicoApi.Utils
{

    /// <summary>
    /// レスポンスステータスコード
    /// </summary>
    public enum NicoApiResponseStatusCode
    {
        /// <summary>
        /// 設定されていない
        /// </summary>
        None,

        /// <summary>
        /// 成功
        /// </summary>
        OK,

        /// <summary>
        /// 失敗
        /// </summary>
        Fail,

        /// <summary>
        /// 未定義のコード
        /// </summary>
        Undefined
    }

    /// <summary>
    /// レスポンスステータス
    /// </summary>
    public class NicoApiResponseStatus
    {

        /// <summary>
        /// ステータスコード
        /// </summary>
        public NicoApiResponseStatusCode Code
        {
            get;
            private set;
        }

        private string baseCode;


        /// <summary>
        /// 詳細
        /// </summary>
        public string Description
        {
            get;
            private set;
        }

        /// <summary>
        /// 元のコードを取得
        /// </summary>
        /// <returns></returns>
        public string GetBaseCode()
        {
            return baseCode;
        }


        internal NicoApiResponseStatus(NicoApiResponseStatusCode code,string baseCode)
        {
            Code = code;
            this.baseCode = baseCode;
            switch (code)
            {
                case NicoApiResponseStatusCode.None:
                    Description = "設定されていません";
                    break;

                case NicoApiResponseStatusCode.OK:
                    Description = "成功しました";
                    break;


                case NicoApiResponseStatusCode.Fail:
                    Description = "失敗しました";
                    break;

                case NicoApiResponseStatusCode.Undefined:
                    Description = "定義されていない結果コードです";
                    break;
                    
            }
        }
    }
}
